﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Modelo_ETdA.Negocio.Analise.Formato
{
    public class FormatoAvaliacaoCliente : FormatoAvaliacao
    {

        private float valorCliente;
        private List<QuestaoCliente> listQuestaoCliente;

        public FormatoAvaliacaoCliente(int codAmbC, string nome, float valCliente, DocumentoCabecalho doc_cabecalho)
            : base(codAmbC, nome, doc_cabecalho)
        {
            this.valorCliente = valCliente;
            listQuestaoCliente = new List<QuestaoCliente>();
        }

        public FormatoAvaliacaoCliente(int codAmbC, int codigo, string nome, float valCliente, DocumentoCabecalho doc_cabecalho)
            : base(codAmbC, codigo, nome, doc_cabecalho)
        {
            this.valorCliente = valCliente;
            listQuestaoCliente = new List<QuestaoCliente>();
        }



        public void registMin(String alcunha, int escalaMin, int escalaMax, int minResposta,
                                                                float ponderacao, int codConsideracao)
        {
            listQuestaoCliente.Add(new QuestaoCliente(-1, alcunha, 1, escalaMax, minResposta, ponderacao, codConsideracao));
        }


        public override Questao getQuestao(int codQuestao)
        {
            Questao ret = null;

            foreach (Questao q in listQuestaoCliente)
            {
                if ((q.getCod()) == codQuestao)
                {
                    ret = q;
                    break;
                }
            }

            return ret;
        }


        public void removerQuestao(String alcunha)
        {
            int i = 0;

            foreach (QuestaoCliente q in listQuestaoCliente)
            {
                if ((q.Alcunha == alcunha)) break;
                else i++;
            }

            listQuestaoCliente.RemoveAt(i);
        }

        public float getSumPonderacao(int codConsideracao)
        {
            float ret = 0;

            foreach (Questao q in listQuestaoCliente)
            {
                if ((q.CodConsideracao == codConsideracao))
                {
                    ret += q.Ponderacao;
                }
            }

            return ret;
        }

        public float ValorCliente
        {
            get { return valorCliente; }
            set { valorCliente = value; }
        }

        public List<QuestaoCliente> ListQuestaoCliente
        {
            get { return listQuestaoCliente; }
            set { listQuestaoCliente = value; }
        }
    }
}
